#include "PrecompiledHeader.h"
#include "ConfigurationPanels.h"

using namespace pxSizerFlags;
/*
Panels::ValDanX_FLUGSPanel::ValDanX_FLUGSPanel( wxWindow* parent ) :
	BaseApplicableConfigPanel( parent )
{
	struct CheckTextMess
	{
		wxString label, tooltip;
	};

	wxStaticBoxSizer& groupSizer = *new wxStaticBoxSizer( wxVERTICAL, this, _("Flags") );
    const CheckTextMess check_text[NUM_OF_VALDANX_FLUGS] =
	{
		{    
	        _("VUUpdateDI - Update DI flags [NOT RECOMMENDED]"),
			wxEmptyString
	    },
		{    
	        _("Disable VU MACx UPDATE [RECOMMENDED](!)"),
			wxEmptyString
	    },
		{  
		    _("Disable VU MACy UPDATE [RECOMMENDED]"),
			wxEmptyString
	    },
		{ 
			_("Disable VU MACz UPDATE [RECOMMENDED]"),
			wxEmptyString
	    },
	    {    
	        _("Disable VU MACw UPDATE [RECOMMENDED]"),
			wxEmptyString
	    },
	    {    
	        _("Disable VU MACx CLEAR [RECOMMENDED](!)"),
			wxEmptyString
		},
	    {    
	        _("Disable VU MACy CLEAR [RECOMMENDED]"),
			wxEmptyString
		},
	    {    
	        _("Disable VU MACz CLEAR [RECOMMENDED]"),
			wxEmptyString
		},
	    {    
	        _("Disable VU MACw CLEAR [RECOMMENDED]"),
			wxEmptyString
		},
		{   _("Enable mac flag (can removes bugs in textures)[NOT RECOMMENDED]."),
			wxEmptyString
	    }
		
	};
	for( int i=0; i<NUM_OF_VALDANX_FLUGS; ++i )
	{
		groupSizer += (m_checkbox[i] = new pxCheckBox( this, check_text[i].label ));
		m_checkbox[i]->SetToolTip( check_text[i].tooltip );
	}
wxPanelWithHelpers* left	= new wxPanelWithHelpers( this, wxVERTICAL );
left->SetMinWidth( 200 );
wxButton* SpeedStable    = new wxButton( left, wxID_ANY, _("Default Speed Stable")    );
wxButton* SpeedUnStable  = new wxButton( left, wxID_ANY, _("Default Speed UnStable")  );
wxButton* SpeedWarning   = new wxButton( left, wxID_ANY, _("Default Speed Warning")   );
*left+= SpeedStable                | pxExpand;
*left+= SpeedUnStable              | pxExpand;
*left+= SpeedWarning               | pxExpand;

*this+= groupSizer	               | pxCenter;
*this+= left			           | pxExpand;

Connect( SpeedStable   -> GetId(), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ValDanX_FLUGSPanel::AppStatusEvent_DefaultSpeed  ) );
Connect( SpeedUnStable -> GetId(), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ValDanX_FLUGSPanel::AppStatusEvent_DefaultUnSpeed) );
Connect( SpeedWarning  -> GetId(), wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(ValDanX_FLUGSPanel::AppStatusEvent_DefaultWarning) );
}

void Panels::ValDanX_FLUGSPanel::Apply()
{
	Pcsx2Config::ValDanX_FLUGSOptions& opts( g_Conf->EmuOptions.ValDanX_FLUGS );
	for (int i = 0; i < NUM_OF_VALDANX_FLUGS; i++)
    {
        if (m_checkbox[i]->GetValue())
        {
            opts.bitset |= (1 << i);
        }
        else
        {
            opts.bitset &= ~(1 << i);
        }
	}
}
void Panels::ValDanX_FLUGSPanel::AppStatusEvent_OnSettingsApplied()
{
	const Pcsx2Config::ValDanX_FLUGSOptions& opts( g_Conf->EmuOptions.ValDanX_FLUGS );
	for( int i=0; i<NUM_OF_VALDANX_FLUGS; ++i )
	{
		m_checkbox[i]->SetValue( !!(opts.bitset & (1 << i)) );
	}
}
void Panels::ValDanX_FLUGSPanel::AppStatusEvent_DefaultSpeed( wxCommandEvent& evt )
{
	ValDanX_FLUGSPanel::m_checkbox[0]->SetValue( false );
	ValDanX_FLUGSPanel::m_checkbox[1]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[2]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[3]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[4]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[5]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[6]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[7]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[8]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[9]->SetValue( false );
}
void Panels::ValDanX_FLUGSPanel::AppStatusEvent_DefaultUnSpeed( wxCommandEvent& evt )
{
	ValDanX_FLUGSPanel::m_checkbox[0]->SetValue( false );
	ValDanX_FLUGSPanel::m_checkbox[1]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[2]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[3]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[4]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[5]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[6]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[7]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[8]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[9]->SetValue( false );
}
void Panels::ValDanX_FLUGSPanel::AppStatusEvent_DefaultWarning( wxCommandEvent& evt )
{	
	ValDanX_FLUGSPanel::m_checkbox[0]->SetValue( false );
	ValDanX_FLUGSPanel::m_checkbox[1]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[2]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[3]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[4]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[5]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[6]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[7]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[8]->SetValue( true );
	ValDanX_FLUGSPanel::m_checkbox[9]->SetValue( false );
}*/